how oop works